home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / SOURCE.ZIP / FONTA.ASM < prev    next >
Assembly Source File  |  1992-09-12  |  18KB  |  672 lines

  1.  
  2. PAGE  59,132
  3.  
  4. ;██████████████████████████████████████████████████████████████████████████
  5. ;██                                         ██
  6. ;██                    FONTA                         ██
  7. ;██                                         ██
  8. ;██      Created:   19-Jan-92                             ██
  9. ;██      Code type: special                             ██
  10. ;██      Passes:    5           Analysis Options on: none             ██
  11. ;██                                         ██
  12. ;██████████████████████████████████████████████████████████████████████████
  13.  
  14. data_28e    equ    1003h            ;*
  15. data_29e    equ    1232h            ;*
  16. data_30e    equ    180Ch            ;*
  17. data_33e    equ    2005h            ;*
  18. data_36e    equ    2412h            ;*
  19. data_38e    equ    3079h            ;*
  20. data_47e    equ    7830h            ;*
  21. data_50e    equ    91F0h            ;*
  22. data_51e    equ    99BDh            ;*
  23. data_53e    equ    0A901h            ;*
  24. data_56e    equ    0B3A1h            ;*
  25. data_60e    equ    0BD01h            ;*
  26. data_61e    equ    0BF04h            ;*
  27. data_70e    equ    0F601h            ;*
  28. data_71e    equ    0F630h            ;*
  29. data_72e    equ    0F712h            ;*
  30.  
  31. ;--------------------------------------------------------------    seg_a  ----
  32.  
  33. seg_a        segment    byte public
  34.         assume cs:seg_a , ds:seg_a
  35.  
  36.         mov    ax,3463h
  37.         mov    dx,75Ch
  38.         cmp    ax,sp
  39.         jae    loc_2            ; Jump if above or =
  40.         mov    ax,sp
  41.         sub    ax,344h
  42.         and    ax,0FFF0h
  43.         mov    di,ax
  44.         mov    cx,0A2h
  45.         mov    si,17Ch
  46.         cld                ; Clear direction
  47.         rep    movsw            ; Rep when cx >0 Mov [si] to es:[di]
  48.         mov    bx,ax
  49.         mov    cl,4
  50.         shr    bx,cl            ; Shift w/zeros fill
  51.         mov    cx,ds
  52.         add    bx,cx
  53.         push    bx
  54.         xor    bx,bx            ; Zero register
  55.         push    bx
  56.         retf                ; Return far
  57.         db     0Dh, 01h, 41h
  58.         db    'nother Fine aHa/nBa Elite/WareZZ'
  59.         db    'ZZZZZZZZZZZZZZZZNot enough memor'
  60.         db    'y$'
  61. loc_2:
  62.         mov    ax,900h
  63.         mov    dx,15Fh
  64.         int    21h            ; DOS Services  ah=function 09h
  65.                         ;  display char string at ds:dx
  66.         int    20h            ; DOS program terminate
  67.         nop
  68.         std                ; Set direction flag
  69.         mov    di,ax
  70.         dec    di
  71.         dec    di
  72.         mov    si,offset data_22
  73.         add    si,dx
  74.         mov    cx,dx
  75.         shr    cx,1            ; Shift w/zeros fill
  76.         rep    movsw            ; Rep when cx >0 Mov [si] to es:[di]
  77.         cld                ; Clear direction
  78.         xchg    si,di
  79.         inc    si
  80.         inc    si
  81.         mov    di,100h
  82.         lodsw                ; String [si] to ax
  83.         xchg    ax,bp
  84.         mov    dx,10h
  85.         jmp    short loc_12
  86.         db    90h
  87. loc_3:
  88.         lodsw                ; String [si] to ax
  89.         xchg    ax,bp
  90.         mov    dl,10h
  91.         jmp    short loc_14
  92. loc_4:
  93.         lodsw                ; String [si] to ax
  94.         xchg    ax,bp
  95.         mov    dl,10h
  96.         jmp    short loc_15
  97. loc_5:
  98.         lodsw                ; String [si] to ax
  99.         xchg    ax,bp
  100.         mov    dl,10h
  101.         jmp    short loc_16
  102. loc_6:
  103.         lodsw                ; String [si] to ax
  104.         xchg    ax,bp
  105.         mov    dl,10h
  106.         jmp    short loc_20
  107. loc_7:
  108.         lodsw                ; String [si] to ax
  109.         xchg    ax,bp
  110.         mov    dl,10h
  111.         jmp    short loc_21
  112. loc_8:
  113.         lodsw                ; String [si] to ax
  114.         xchg    ax,bp
  115.         mov    dl,10h
  116.         jmp    short loc_22
  117. loc_9:
  118.         lodsw                ; String [si] to ax
  119.         xchg    ax,bp
  120.         mov    dl,10h
  121.         jmp    short loc_23
  122. loc_10:
  123.         lodsw                ; String [si] to ax
  124.         xchg    ax,bp
  125.         mov    dl,10h
  126.         jc    loc_13            ; Jump if carry Set
  127. loc_11:
  128.         movsb                ; Mov [si] to es:[di]
  129. loc_12:
  130.         shr    bp,1            ; Shift w/zeros fill
  131.         dec    dx
  132.         jz    loc_10            ; Jump if zero
  133.         jnc    loc_11            ; Jump if carry=0
  134. loc_13:
  135.         xor    cx,cx            ; Zero register
  136.         xor    bx,bx            ; Zero register
  137.         shr    bp,1            ; Shift w/zeros fill
  138.         dec    dx
  139.         jz    loc_3            ; Jump if zero
  140. loc_14:
  141.         rcl    bx,1            ; Rotate thru carry
  142.         shr    bp,1            ; Shift w/zeros fill
  143.         dec    dx
  144.         jz    loc_4            ; Jump if zero
  145. loc_15:
  146.         rcl    bx,1            ; Rotate thru carry
  147.         test    bx,bx
  148.         jz    loc_18            ; Jump if zero
  149.         shr    bp,1            ; Shift w/zeros fill
  150.         dec    dx
  151.         jz    loc_5            ; Jump if zero
  152. loc_16:
  153.         rcl    bx,1            ; Rotate thru carry
  154.         cmp    bl,6
  155.         jb    loc_18            ; Jump if below
  156.         shr    bp,1            ; Shift w/zeros fill
  157.         dec    dx
  158.         jnz    loc_17            ; Jump if not zero
  159.         lodsw                ; String [si] to ax
  160.         xchg    ax,bp
  161.         mov    dl,10h
  162. loc_17:
  163.         rcl    bx,1            ; Rotate thru carry
  164. loc_18:
  165.         mov    cl,byte ptr cs:[11Ch][bx]
  166.         cmp    cl,0Ah
  167.         je    loc_26            ; Jump if equal
  168. loc_19:
  169.         xor    bx,bx            ; Zero register
  170.         cmp    cx,2
  171.         je    loc_25            ; Jump if equal
  172.         shr    bp,1            ; Shift w/zeros fill
  173.         dec    dx
  174.         jz    loc_6            ; Jump if zero
  175. loc_20:
  176.         jc    loc_25            ; Jump if carry Set
  177.         shr    bp,1            ; Shift w/zeros fill
  178.         dec    dx
  179.         jz    loc_7            ; Jump if zero
  180. loc_21:
  181.         rcl    bx,1            ; Rotate thru carry
  182.         shr    bp,1            ; Shift w/zeros fill
  183.         dec    dx
  184.         jz    loc_8            ; Jump if zero
  185. loc_22:
  186.         rcl    bx,1            ; Rotate thru carry
  187.         shr    bp,1            ; Shift w/zeros fill
  188.         dec    dx
  189.         jz    loc_9            ; Jump if zero
  190. loc_23:
  191.         rcl    bx,1            ; Rotate thru carry
  192.         cmp    bl,2
  193.         jae    loc_27            ; Jump if above or =
  194. loc_24:
  195.         mov    bh,byte ptr cs:[12Ch][bx]
  196. loc_25:
  197.         lodsb                ; String [si] to al
  198.         mov    bl,al
  199.         push    si
  200.         mov    si,di
  201.         sub    si,bx
  202.         rep    movsb            ; Rep when cx >0 Mov [si] to es:[di]
  203.         pop    si
  204.         jmp    short loc_12
  205. loc_26:
  206.         lodsb                ; String [si] to al
  207.         add    cl,al
  208.         adc    ch,0
  209.         cmp    al,0FFh
  210.         jne    loc_19            ; Jump if not equal
  211.         jmp    short loc_31
  212. loc_27:
  213.         shr    bp,1            ; Shift w/zeros fill
  214.         dec    dx
  215.         jnz    loc_28            ; Jump if not zero
  216.         lodsw                ; String [si] to ax
  217.         xchg    ax,bp
  218.         mov    dl,10h
  219. loc_28:
  220.         rcl    bx,1            ; Rotate thru carry
  221.         cmp    bl,8
  222.         jb    loc_24            ; Jump if below
  223.         shr    bp,1            ; Shift w/zeros fill
  224.         dec    dx
  225.         jnz    loc_29            ; Jump if not zero
  226.         lodsw                ; String [si] to ax
  227.         xchg    ax,bp
  228.         mov    dl,10h
  229. loc_29:
  230.         rcl    bx,1            ; Rotate thru carry
  231.         cmp    bl,17h
  232.         jb    loc_24            ; Jump if below
  233.         shr    bp,1            ; Shift w/zeros fill
  234.         dec    dx
  235.         jnz    loc_30            ; Jump if not zero
  236.         lodsw                ; String [si] to ax
  237.         xchg    ax,bp
  238.         mov    dl,10h
  239. loc_30:
  240.         rcl    bx,1            ; Rotate thru carry
  241.         and    bx,0DFh
  242.         xchg    bl,bh
  243.         jmp    short loc_25
  244. loc_31:
  245.         xor    ax,ax            ; Zero register
  246.         push    es
  247.         mov    bx,100h
  248.         push    bx
  249.         mov    bx,ax
  250.         mov    cx,ax
  251.         mov    dx,ax
  252.         mov    bp,ax
  253.         mov    si,ax
  254.         mov    di,ax
  255.         retf                ; Return far
  256.         db     03h, 00h, 02h, 0Ah, 04h, 05h
  257.         db     00h, 00h, 00h, 00h, 00h, 00h
  258.         db     06h, 07h, 08h, 09h, 01h, 02h
  259.         db     00h, 00h, 03h, 04h, 05h, 06h
  260.         db     00h
  261.         db    7 dup (0)
  262.         db     07h, 08h, 09h, 0Ah, 0Bh, 0Ch
  263.         db     0Dh, 90h,0A0h, 00h,0EBh, 33h
  264.         db     90h, 0Dh, 20h, 01h, 0Dh, 0Ah
  265.         db     20h, 41h, 6Eh, 6Fh, 00h, 00h
  266.         db    'ther fine aHa/nB'
  267.         db    0C0h
  268.         db    9, 'a WAREZ'
  269.         db     01h, 00h, 1Ah, 03h, 00h, 40h
  270.         db     02h, 01h, 01h, 04h, 7Ah, 10h
  271.         db     00h, 01h,0B8h, 00h, 05h,0CDh
  272.         db     10h,0B4h, 0Fh, 01h, 80h, 04h
  273.         db    0BFh, 2Ch, 01h, 8Ah, 25h, 3Ah
  274.         db    0C4h, 74h, 06h, 8Ah,0C4h, 32h
  275.         db    0E4h, 02h
  276.         db    45h
  277. loc_33:
  278. ;*        pop    cs            ; Dangerous 8088 only
  279.         db    0Fh
  280.         mov    bp,163h
  281.         mov    di,data_29e
  282.         cmp    ax,1B9h
  283.         or    ah,[bp+di]
  284.         xor    dx,dx            ; Zero register
  285.         xor    bl,bl            ; Zero register
  286.         mov    ax,1110h
  287.         adc    al,0C3h
  288.         nop
  289.         sbb    ax,50h
  290.         pop    es
  291.         add    [bp-7Fh],di
  292.         movsw                ; Mov [si] to es:[di]
  293.         add    word ptr ds:data_51e[bx+di],284Eh
  294.         add    al,7Eh            ; '~'
  295.         adc    [si-2],bh
  296.         db    0FEh,0D6h, 03h,0B8h,0A9h,0BAh
  297.         db    0C6h,0FEh, 7Ch, 21h, 6Ch,0EEh
  298.         db     0Fh,0C2h, 8Dh, 01h, 7Ch, 38h
  299.         db     10h, 10h, 10h, 38h, 7Ch, 3Eh
  300.         db    0ABh, 01h, 0Eh, 10h, 0Dh,0D4h
  301.         db     9Fh, 24h, 6Ch, 07h, 1Fh,0FEh
  302.         db    0A4h, 43h,0FEh, 10h, 01h, 18h
  303.         db     3Ch, 9Ch, 26h, 01h, 18h, 0Bh
  304.         db    0FFh, 01h,0E7h, 65h, 3Bh,0C3h
  305.         db     01h,0E7h, 0Ah,0FFh,0D5h, 7Dh
  306.         db     1Fh, 66h, 01h, 21h,0AAh,0BBh
  307.         db     1Fh, 99h, 01h, 21h, 80h, 74h
  308.         db     12h, 1Eh
  309.         db     0Eh, 1Eh, 36h, 78h,0CCh, 01h
  310.         db     78h, 9Eh,0B8h
  311.         db     42h, 2Dh, 7Eh
  312.         db     18h, 18h, 91h, 70h
  313. loc_36:
  314.         push    dx
  315.         push    ds
  316.         sbb    bl,ds:data_30e
  317.         js    loc_36            ; Jump if sign=1
  318.         jo    loc_41            ; Jump if overflow=1
  319.         push    ax
  320.         adc    byte ptr ds:[236h],bh
  321.         db     36h, 76h,0F6h, 66h, 4Eh, 12h
  322.         db     37h, 0Ch, 7Dh,0DBh, 7Eh, 33h
  323.         db     3Ch, 7Eh, 37h, 00h,0DBh, 30h
  324.         db     00h, 80h,0E0h,0F0h,0FCh,0FEh
  325.         db    0FCh,0F0h,0E0h
  326.         db    37h
  327. data_22        db    80h
  328.         db     80h, 10h, 02h, 0Eh, 3Eh, 7Eh
  329.         db    0FEh, 7Eh, 3Eh, 0Eh, 02h, 77h
  330.         db    0D6h,0ADh, 5Ch, 61h,0EBh,0CCh
  331.         db    0B2h, 66h, 01h, 08h, 93h, 24h
  332.         db     10h, 7Fh,0DBh, 01h, 7Bh, 1Bh
  333.         db     2Fh, 00h, 01h, 30h,0C6h,0C6h
  334.         db     60h, 7Ch,0F6h
  335. loc_40:
  336.         xchg    ax,sp
  337.         xchg    bl,dh
  338.         jl    $+0Eh            ; Jump if <
  339.         or    [si+0],bh
  340.         push    si
  341. loc_41:
  342.         sbb    word ptr [bp+233h],0FA50h
  343. ;*        jg    loc_46            ;*Jump if >
  344.         db     7Fh, 4Fh
  345.         jle    $+5            ; Jump if < or =
  346.         db     60h,0C0h,0FFh, 09h, 0Dh, 70h
  347.         db     01h, 0Ch, 0Eh,0FFh, 1Ah, 40h
  348.         db     0Eh, 0Ch, 01h,0A3h, 30h, 70h
  349.         db    0FEh, 70h, 30h, 83h,0D2h, 02h
  350.         db    0B4h,0C0h, 01h,0FEh, 41h,0C3h
  351.         db     01h, 0Fh, 24h, 66h,0FFh, 66h
  352.         db     24h, 02h, 90h
  353.         db    42h
  354.         db     2Fh, 83h, 00h, 8Bh, 0Eh, 1Ah
  355.         db    0FAh, 7Ch, 38h, 01h,0B1h, 04h
  356.         db     01h, 40h,0D5h, 9Dh, 7Ch, 7Dh
  357.         db     2Dh, 75h, 90h, 36h, 01h, 14h
  358.         db     02h
  359.         db     20h, 65h, 7Bh, 6Ch
  360.         db     01h,0FEh, 03h, 6Ch, 0Bh,0EAh
  361.         db    0B0h,0F2h
  362. loc_46:
  363.         db    0C0h, 78h, 3Ch, 06h,0EEh, 05h
  364.         db     38h,0C2h, 00h, 62h, 66h, 0Ch
  365.         db     18h, 30h, 66h,0C6h, 81h, 80h
  366.         db     0Dh, 38h, 6Ch, 38h, 30h, 76h
  367.         db     7Eh,0B0h, 76h,0B3h
  368.         db    0F4h,0CCh, 01h, 18h, 03h, 70h
  369.         db    0DCh,0EEh, 2Bh, 01h, 18h,0E2h
  370.         db    0DCh, 7Ah, 09h, 01h, 18h
  371.         db     00h,0E2h,0A1h, 0Fh, 42h,0FEh
  372.         db     38h, 6Ch, 02h,0A3h
  373.         db    0F4h,0AEh,0EFh, 05h,0B7h, 04h
  374.         db     58h,0FEh,0BFh, 48h, 09h,0D8h
  375.         db     1Fh, 01h, 03h, 06h
  376.         db     5Dh, 2Eh
  377.         db     08h, 60h,0C0h,0F0h, 7Eh, 92h
  378.         db     0Fh, 7Dh,0DBh,0DBh, 05h, 3Ch
  379.         db    0F8h, 90h, 78h, 82h,0B0h,0DDh
  380.         db    0D0h, 30h,0C6h, 45h,0D5h, 54h
  381.         db     10h, 06h, 06h
  382.         db    0EEh, 01h, 03h, 28h,0DEh, 0Ch
  383.         db     1Ch, 3Ch, 6Ch,0DDh,0E5h, 86h
  384.         db    0FEh, 7Fh, 1Eh, 7Bh,0C2h,0C0h
  385.         db    0C0h,0FCh, 1Eh,0A8h, 01h, 20h
  386.         db     1Eh, 10h,0FAh, 68h, 44h, 0Eh
  387.         db    0FEh,0CFh, 9Fh, 4Fh, 01h, 60h
  388.         db    0C6h, 7Ch,0BEh,0F5h, 01h, 20h
  389.         db     0Ch, 7Eh, 00h
  390.         db     40h, 7Dh
  391.         db    0F6h,0DCh, 04h, 04h, 10h, 77h
  392.         db    0FBh,0F0h,0CDh, 60h, 70h, 36h
  393.         db     40h,0FFh, 01h,0CCh,0FDh, 01h
  394.         db     1Bh,0C2h,0D3h,0B0h, 60h, 0Ch
  395.         db     18h, 00h,0E0h, 15h
  396. data_23        dw    705Eh            ; Data table (indexed access)
  397.         db    0DEh, 01h,0DCh,0C0h, 7Eh, 31h
  398.         db     08h, 22h, 38h, 38h, 6Ch,0FFh
  399.         db    0E2h, 67h, 66h,0C0h, 01h, 8Ah
  400.         db     0Dh, 20h,0FCh,0B2h, 33h, 32h
  401.         db     3Ch, 32h, 33h, 05h,0FCh,0B0h
  402.         db     43h, 08h, 60h, 33h, 61h,0F2h
  403.         db     08h, 6Fh,0C4h, 6Ch,0DFh,0F8h
  404.         db     6Ch, 98h, 3Ch, 36h, 33h, 01h
  405.         db    0F3h, 76h, 3Ch, 20h, 29h, 9Dh
  406.         db     7Ch,0DAh, 7Eh, 04h, 33h, 40h
  407.         db     07h, 83h, 21h,0FFh,0B0h, 32h
  408.         db     7Eh, 70h, 00h,0EFh, 00h, 1Ch
  409.         db     36h, 63h, 70h, 09h,0C1h,0C0h
  410.         db    0CCh,0CCh,0DCh,0BFh, 00h, 50h
  411.         db     98h, 0Eh,0E6h, 66h, 6Fh,0FEh
  412.         db     04h, 66h, 6Eh,0E0h, 70h, 60h
  413.         db     0Eh, 1Bh, 1Fh,0FCh,0D8h, 7Fh
  414.         db     4Eh,0C1h, 0Ah,0BEh,0FFh, 1Bh
  415.         db     20h, 36h, 13h
  416.         db    0CCh, 4Ch, 7Ch, 72h, 03h, 00h
  417.         db    0CEh,0C3h,0C3h,0C6h,0CCh,0D8h
  418.         db    0F0h,0F8h,0CCh,0C6h,0C0h, 80h
  419.         db     83h,0C5h, 3Eh, 6Fh, 37h,0FCh
  420.         db     09h,0E0h, 62h,0C0h,0E3h, 63h
  421.         db     73h, 7Fh, 5Bh, 43h, 43h,0C3h
  422.         db     80h, 92h,0E0h, 07h, 30h, 63h
  423.         db    0B0h, 15h, 11h, 67h, 63h, 61h
  424.         db    0E0h, 31h, 1Eh, 0Ah,0E3h,0F3h
  425.         db     80h,0C3h, 44h, 5Fh, 20h, 02h
  426.         db    0C9h,0ACh,0F3h,0B3h, 33h, 3Bh
  427.         db     36h, 42h, 3Ch,0F0h, 0Dh,0C0h
  428.         db     21h,0E3h,0C1h,0C1h,0D1h,0DBh
  429.         db    0DFh,0CEh, 7Eh, 07h, 03h, 80h
  430.         db     02h, 1Fh,0E6h
  431.         db    'Pf|xnwIg@'
  432.         db     11h,0EEh, 3Eh
  433.         db    0B0h, 95h, 70h, 1Ch, 06h, 66h
  434.         db     3Eh, 6Eh,0FFh, 99h, 0Ch, 7Fh
  435.         db     51h, 01h, 5Eh, 03h, 25h, 17h
  436.         db     7Bh, 01h,0C7h,0EEh, 58h,0F0h
  437.         db    0C0h, 01h, 13h, 1Eh
  438.         db     36h, 08h
  439.         db     1Bh,0D0h
  440.         db     18h, 99h, 01h,0BDh,0E7h,0B3h
  441.         db     54h, 42h, 0Eh, 29h, 42h,0FBh
  442.         db     50h,0A9h,0CEh, 7Eh, 06h
  443.         db     42h, 0Ch, 29h
  444.         db    0F9h, 10h, 81h
  445.         dw    2412h            ; Data table (indexed access)
  446.         db     3Ch, 14h, 02h
  447.         db     11h, 03h, 0Fh, 3Bh,0E3h,0CAh
  448.         db    0C9h,0BEh, 33h, 25h,0F8h,0D1h
  449.         db     7Ch, 60h,0FDh,0D0h, 01h, 20h
  450.         db     80h, 02h, 2Eh,0FDh, 06h, 03h
  451.         db     01h,0BCh, 27h,0D0h, 8Dh, 20h
  452.         db     10h,0E8h, 61h, 38h, 6Ch,0C6h
  453.         db     00h, 0Eh, 01h,0A9h,0C3h, 50h
  454.         db     67h, 0Ch, 08h, 19h, 78h,0D8h
  455.         db    0D8h,0DCh, 21h, 0Ch,0B0h, 00h
  456.         db    0E0h,0C0h,0C7h, 5Eh, 7Eh,0F3h
  457.         db     33h, 33h, 53h,0C1h, 8Fh, 02h
  458.         db     4Ch,0F0h, 00h, 00h, 07h, 6Ch
  459.         db     7Eh,0CFh,0CCh,0CCh, 7Fh, 03h
  460.         db     4Ch, 3Eh, 3Ch, 67h,0C3h,0F3h
  461.         db    0DEh,0C0h, 6Eh, 3Ch, 0Ch, 06h
  462.         db    0A0h, 08h, 1Ch, 5Ch, 30h, 34h
  463.         db    0FCh,0B0h, 09h, 78h, 00h,0D0h
  464.         db     7Bh,0CEh,0C6h,0CEh, 76h,0B8h
  465.         db    0B8h,0E2h, 1Ch, 3Dh, 72h, 61h
  466.         db     03h,0A8h,0F0h, 0Eh, 01h, 61h
  467.         db     36h, 82h, 39h, 04h, 02h, 00h
  468.         db     03h, 03h,0C6h,0CCh, 8Fh, 8Fh
  469.         db     00h, 69h, 0Ah, 30h, 18h, 01h
  470.         db     12h, 66h,0FFh,0EBh,0E9h, 84h
  471.         db     63h, 01h, 40h, 0Eh, 40h, 60h
  472.         db     7Ch,0E6h, 65h, 5Eh,0B3h, 60h
  473.         db    0C0h, 83h, 1Eh, 67h, 01h,0CEh
  474.         db     2Ch, 5Ah, 40h, 03h,0B3h, 5Ch
  475.         db     54h, 03h,0A5h, 04h,0E0h,0C1h
  476.         db    0CEh,0CDh,0CCh,0CDh,0CEh, 7Ch
  477.         db    0D2h, 86h, 9Fh, 41h, 62h, 60h
  478.         db     60h,0F8h,0DFh, 76h, 63h, 00h
  479.         db     2Fh, 71h, 6Ch, 3Ch, 3Fh, 3Eh
  480.         db     9Ah, 0Ch,0F0h,0B0h, 01h,0D0h
  481. loc_63:
  482.         db     6Ah,0BCh, 03h, 43h, 01h, 00h
  483.         db    0A8h, 99h, 02h, 36h, 01h,0D0h
  484.         db     18h
  485. loc_64:
  486.         db    0C6h, 2Dh, 00h, 00h, 01h,0C3h
  487.         db     1Ch, 3Fh,0C1h, 3Ch, 66h,0C3h
  488.         db     10h, 80h, 08h,0B9h,0C1h, 63h
  489.         db     36h, 1Ch,0B1h
  490. loc_65:
  491.         add    word ptr ds:[0C1h],bp
  492.         or    [bx+si-28h],bh
  493.         xor    [si],ah
  494.         jl    loc_64            ; Jump if <
  495.         dec    cx
  496.         push    bx
  497.         xor    dl,ch
  498.         jo    loc_65            ; Jump if overflow=1
  499.         push    cs
  500.         add    word ptr [bp+0],0
  501.         nop                ;*ASM fixup - displacement
  502.         nop                ;*ASM fixup - sign extn byte
  503.         add    [bx+si],ax
  504.         cmp    [di+1Ch],bx
  505.         and    al,18h
  506.         add    word ptr [bp+7600h],7DCh
  507.         esc    6,al            ; coprocessor escape
  508.         mov    al,12h
  509.         retn    8857h
  510.         into                ; Int 4 on overflow
  511.         db     66h,0CFh,0C6h, 64h, 81h, 82h
  512.         db     0Ch,0CCh, 5Fh,0C6h,0C6h, 4Ch
  513.         db     1Eh, 03h, 01h,0CEh, 76h, 1Dh
  514.         db    0CAh
  515.         db     5Eh, 23h
  516.         db    0FEh,0C0h,0A5h, 80h, 90h, 30h
  517.         db     78h,0CCh, 00h, 78h, 0Ch, 7Ch
  518.         db     90h, 8Bh,0C1h, 7Ah,0B0h, 20h
  519.         db    0CCh, 04h, 10h, 8Ch, 87h,0F5h
  520.         db     03h, 10h
  521.         db    0FFh, 04h, 30h,0C3h,0C2h, 12h
  522.         db     2Dh,0CEh, 2Eh, 0Ch, 43h, 50h
  523.         db     3Eh, 7Bh, 02h, 60h, 50h, 03h
  524.         db     70h,0B0h, 47h, 9Fh, 03h, 20h
  525.         db    0B0h, 5Dh, 78h, 38h,0EFh, 3Ch
  526.         db    0DEh, 67h,0AFh, 04h, 10h, 80h
  527.         db    0CFh, 90h, 02h, 10h,0CFh, 02h
  528.         db    0CAh,0B7h, 40h,0D2h, 8Fh, 4Fh
  529.         db     21h, 02h, 10h,0DFh,0FEh, 21h
  530.         db     1Fh, 4Ch, 50h, 01h,0B7h,0E0h
  531.         db     66h,0DBh, 1Bh, 7Fh,0D8h,0D8h
  532.         db    0DFh,0B0h, 7Eh, 2Ah,0E9h, 0Bh
  533.         db     01h,0FEh, 04h,0DEh,0C3h,0B2h
  534.         db     00h,0A3h, 37h,0FBh, 90h, 48h
  535.         db     02h, 10h,0DDh,0B3h,0B0h, 00h
  536.         db     10h, 30h, 61h,0F6h, 02h, 50h
  537.         db    0A0h, 02h, 10h, 0Bh, 9Fh, 6Fh
  538.         db    0FCh,0F7h, 10h, 4Fh, 40h, 83h
  539.         db     7Fh, 8Fh, 70h, 05h, 5Fh, 70h
  540.         db    0C0h,0A8h, 92h, 6Eh,0CDh,0BAh
  541.         db    0F0h,0F8h,0E2h,0BEh, 66h,0F6h
  542.         db     6Ch, 9Fh, 48h,0EEh, 0Fh, 3Ch
  543.         db     20h, 70h, 88h, 7Bh,0FCh,0C0h
  544.         db    0CCh,0DEh, 70h, 28h, 80h, 07h
  545.         db     0Eh, 56h, 48h, 1Bh, 18h, 3Fh
  546.         db     01h, 2Eh, 34h,0D8h, 70h, 01h
  547.         db     02h
  548.         db    0CCh, 86h,0A0h, 10h, 02h, 40h
  549.         db     8Bh,0FFh, 00h, 80h,0F0h, 91h
  550.         db     48h, 3Eh, 04h, 7Eh,0D0h, 2Dh
  551.         db    0F1h, 60h,0BCh, 5Fh,0E6h, 16h
  552.         db     1Ch, 0Fh, 2Bh,0E6h,0F6h,0DEh
  553.         db    0CEh, 00h, 34h, 60h, 00h, 3Ch
  554.         db     6Ch, 6Ch, 3Eh, 00h, 7Eh, 00h
  555.         db     06h,0D1h, 7Ch, 7Ah, 38h, 00h
  556.         db     7Ch,0E2h, 90h, 02h,0CDh,0E0h
  557.         db     08h, 2Dh, 5Fh, 02h, 55h,0B6h
  558.         db     2Eh, 31h,0D2h, 03h, 1Ch,0E1h
  559.         db     95h, 51h, 72h, 48h,0CEh, 60h
  560.         db     62h, 66h, 6Ch, 85h,0CAh, 0Fh
  561.         db    0DCh, 36h, 9Ah, 3Eh, 10h, 36h
  562.         db     6Eh,0DEh,0CEh, 25h, 36h, 7Eh
  563.         db     23h, 5Ah, 1Eh, 0Eh, 3Ch, 00h
  564.         db     62h, 11h, 7Ah,0C4h, 6Ch,0D8h
  565.         db     6Ch, 36h, 01h, 4Eh, 72h,0D2h
  566.         db     0Eh, 6Ch,0D8h, 0Bh, 11h, 44h
  567.         db    0E9h, 74h, 04h, 02h,0AAh, 55h
  568.         db     04h, 02h,0DDh, 77h, 04h, 02h
  569.         db     5Dh, 7Fh, 18h
  570.         db     0Dh, 01h,0F8h, 05h, 0Eh,0DDh
  571.         db    0EEh, 10h, 36h, 01h,0F6h, 08h
  572.         db     2Fh,0F4h,0A2h, 03h, 10h,0CEh
  573.         db    0DBh, 06h, 30h,0F6h, 06h, 30h
  574.         db    0EFh, 5Eh, 06h, 01h, 3Eh, 05h
  575.         db     20h, 0Fh,0DFh
  576.         db    30h
  577.         db    0BDh, 12h,0F7h, 6Fh, 10h, 90h
  578.         db     05h,0AAh,0EBh, 03h,0F8h, 05h
  579.         db    0C0h
  580.         db     1Fh, 03h,0A5h, 79h, 30h, 01h
  581.         db    0FFh, 06h, 2Ah, 6Fh,0A6h, 06h
  582.         db     30h, 05h
  583.         db    74h
  584. loc_72:
  585.         push    word ptr [bx+0Dh]
  586.         push    es
  587.         inc    ax
  588.         add    ax,1F2Eh
  589.         add    ax,3A3Ah
  590.         adc    [bx],dh
  591.         add    ax,ax
  592.         aaa                ; Ascii adjust
  593.         xor    [bx],bh
  594.         add    bp,[bp+3Fh]
  595.         popf                ; Pop flags
  596.         pop    si
  597.         xor    [si],al
  598.         and    bh,dh
  599.         add    [si],al
  600.         nop
  601.         mov    dx,0E06h
  602.         test    word ptr [di],3740h
  603.         add    sp,[bx+si]
  604.         db    0FFh,0FBh,0FFh, 30h, 40h,0BEh
  605.         db    0BDh, 30h,0DEh, 04h, 20h,0BAh
  606.         db    0DEh, 01h, 06h, 60h,0FFh, 06h
  607.         db    0E0h,0A0h,0FBh, 05h, 88h, 3Fh
  608.         db     03h,0F0h, 1Fh, 70h, 6Ah, 40h
  609.         db     01h, 1Fh, 07h,0D0h, 75h, 20h
  610.         db     3Fh, 05h, 40h,0FFh, 04h, 90h
  611.         db    0Dh
  612.         db     0Dh, 18h, 06h, 60h, 06h,0AFh
  613.         db    0DEh,0B0h, 50h,0FFh, 05h, 01h
  614.         db    0C2h,0A9h, 00h,0CAh, 01h
  615. loc_75:
  616.            lock    jmp    short loc_75
  617.         add    ax,0F01h
  618.         add    ax,601h
  619.         cmp    ds:data_56e[bx+si],dl
  620.         int    10h            ; ??INT Non-standard interrupt
  621.         jcxz    $+2            ; Jump if cx=0
  622.         mov    al,byte ptr ds:[0CC78h]
  623.         esc    0,[bp+si+3615h]        ; coprocessor escape
  624.         out    0DCh,al            ; port 0DCh, DMA-2 clr mask reg
  625.         db    0C0h, 70h,0C5h, 62h,0FEh, 66h
  626.         db     62h, 71h, 96h,0EDh, 00h, 5Fh
  627.         db     6Ch, 01h, 27h, 8Bh,0D0h, 62h
  628.         db     80h, 96h, 9Fh, 30h, 62h,0C6h
  629.         db     00h, 09h,0E5h, 73h, 7Eh,0D8h
  630.         db     20h,0D8h, 70h,0B3h,0E9h, 50h
  631.         db     01h, 7Ch, 2Bh,0B3h, 71h, 71h
  632.         db     81h, 61h, 01h, 1Ch,0FEh, 38h
  633.         db    0EAh,0BDh, 90h, 6Ch, 06h, 40h
  634.         db    0ECh, 89h, 9Fh, 33h,0CBh, 61h
  635.         db     0Fh, 0Eh, 01h,0EEh,0D5h, 8Ah
  636.         db    0D0h, 89h, 3Ch, 66h, 7Ch,0BAh
  637.         db     12h, 00h, 19h,0EDh, 70h, 82h
  638.         db     53h, 40h, 63h, 02h, 06h, 7Ch
  639.         db    0CEh,0DEh,0F6h,0F6h, 3Eh,0D9h
  640.         db     70h, 71h, 30h, 32h, 5Ah,0E0h
  641.         db     30h, 1Ch, 01h,0D9h,0ADh, 60h
  642.         db     01h, 01h, 6Ah,0F5h, 2Dh,0FEh
  643.         db     02h, 33h,0AAh,0BEh, 5Fh, 7Eh
  644.         db     6Ah, 55h, 90h, 06h, 8Dh,0ADh
  645.         db    0ACh, 7Eh, 00h, 6Fh,0F2h,0A3h
  646.         db     6Dh, 72h, 0Ch, 1Eh, 1Ah, 29h
  647.         db     5Ah, 09h, 12h, 58h, 78h, 30h
  648.         db     00h,0A5h,0D5h, 7Ah, 7Eh, 00h
  649.         db     03h,0B1h,0B0h, 2Fh, 25h,0D0h
  650.         db     5Bh, 97h, 78h,0CCh, 01h,0CAh
  651.         db     07h,0FDh, 1Bh,0ADh, 11h, 05h
  652.         db    0E1h,0D4h, 0Ah,0D8h,0D8h, 78h
  653.         db     38h, 14h,0D8h,0B0h,0A2h, 01h
  654.         db     8Ch, 00h,0D8h, 6Ch,0B4h,0A1h
  655.         db     04h, 3Fh, 7Eh,0F5h, 36h, 01h
  656.         db     00h, 1Ch, 01h,0FCh,0B4h,0A1h
  657.         db     00h,0FCh, 00h, 0Dh, 6Dh,0FCh
  658.         db     00h,0FCh, 68h, 43h, 00h,0FCh
  659.         db     00h, 1Bh,0DAh,0FCh, 00h,0FCh
  660.         db    0D0h, 86h, 00h,0FCh, 00h, 36h
  661.         db    0B4h,0FCh, 00h,0FCh,0A1h, 0Dh
  662.         db     00h,0FCh, 6Dh, 68h, 00h,0FCh
  663.         db     00h,0FCh, 43h, 1Bh, 00h,0FCh
  664.         db    0DAh,0D0h, 00h,0FCh, 00h, 86h
  665.         db     06h, 8Ah, 00h,0FFh, 00h
  666.  
  667. seg_a        ends
  668.  
  669.  
  670.  
  671.         end
  672.